package com.solution.admin.home.dao;

import java.util.List;
import java.util.Map;

import com.solution.admin.auth.entity.TodoEntity;
import com.solution.admin.home.entity.SiteConfigItemEntity;
import com.solution.admin.home.entity.SiteModuleEntity;
import com.solution.admin.product.entity.ProductCategoryEntity;

/**
 * PC端首页查询服务
 * @author lilp
 */
public interface IndexDao {

	/**
	 * 查询首页主屏幕广告图片信息 （查询redis）
	 * @param param
	 * @return
	 */
	public List<SiteConfigItemEntity> listIndexRollingAD(Map<String, Object> param);

	/**
	 * 查询首页商品类型 （查询redis）
	 * @param param
	 * @return
	 */
	public List<ProductCategoryEntity> listIndexProductCategory(Map<String, Object> param);

	/**
	 * 查询首页楼层信息
	 * @param param
	 * @return
	 */
	public Map<String, List<SiteConfigItemEntity>> listIndexProductFloor(Map<String, Object> param);

	/**
	 * 查询首页品牌馆信息
	 * @param param
	 * @return
	 */
	public List<SiteConfigItemEntity> listIndexBrandLibrary(Map<String, Object> param);

	
	/**
	 * 查询首页底部指南信息
	 * @param param
	 * @return
	 */
	public Map<String, List<SiteConfigItemEntity>> listIndexFingerPost(Map<String, Object> param);

	
	/**
	 * 将数据保存到redis中
	 * @param key
	 * @param data
	 */
	public void saveDataToRedis(String key , Object data);
	
	
	/**
	 * 将网站指南保存到redis中
	 * @param key
	 * @param data
	 */
	public void saveFingerMapDataToRedis(String key, Map<String, List<SiteConfigItemEntity>> data);

	/**
	 * 保存楼层信息到redis 中
	 * @param key
	 * @param smMap
	 */
	public void saveFloorMapDataToRedis(String key, Map<String, SiteModuleEntity> smMap);

	/**
	 * 从redis 查询网站模块列表
	 * @param param
	 * @return
	 */
	public Map<String, SiteModuleEntity> listSiteModule(Map<String, Object> param);

	/**
	 * 从redis中查询普通配置对象(SiteConfig)
	 * @param param
	 * @return
	 */
	public List<SiteConfigItemEntity> listIndexConfigItem(Map<String, Object> param);

	/**
	 * 查询后台管理系统待办事项
	 * @param tparam
	 * @return
	 */
	public List<TodoEntity> listTodoList(Map<String, Object> tparam);
	
	/**
	 * 查询微信端我的订单待办事项
	 * @param tparam
	 * @return
	 */
	public List<TodoEntity> listWXTodoList(Map<String, Object> tparam);
	
}
